function y = H_m2_from_arg(arg, m)
    gama = 0.5772;
    func_gamma_m = gamma(m);
    func_gamma_m_p_1 = gamma(m+1);
    J_m_from_arg = (1./func_gamma_m_p_1).*(arg./2).^m;
    if(m==0)
        N_m_from_arg = (2/pi)*(log(arg./2) + gama);
    else
        N_m_from_arg = -(func_gamma_m./pi).*(2./arg).^m;
    end
    
    if((arg==0))
        y = J_m_from_arg - 1i*N_m_from_arg;
    else
        y = besselh(m, 2, arg);
    end
end